I2C (also referred to as I2C) is a multi-master serial single-ended bus used for attaching low-speed peripherals to a motherboard, embedded system, cellphone, or other electronic devices. The I2C bus is a two-line bus that includes a clock line (SCL) and data line (SDA) with 7-bit addressing. The bus has two roles for devices: master and slave. A master device is a device that generates the clock and initiates communication with slave devices. An I2C-compatible slave device is a device that receives the clock and responds when addressed by the master. The I2C bus is a multi-master bus which means any number of master devices can be present. Additionally, master and slave roles may be changed between messages (after a STOP is sent). I2C defines basic types of messages, each of which begins with a START and ends with a STOP.
In a second mode of operation, the same two-line bus may be reused for data transmission while by transmitting ternary-coded symbols on both lines and embedding a clock within guaranteed symbol-to-symbol transitions. Under certain conditions, the transmission of ternary-coded symbols may be erroneously detected by I2C devices as an I2C code.
Consequently, a solution is needed to permit the coexistence of I2C devices and ternary symbol coding devices over a shared bus.